約 2,819,408 件
https://w.atwiki.jp/water28/pages/48.html
インストール make installしたファイルを削除したい。 インストール ユーザ作成 [root@localhost ~]# useradd mysql -M -s /sbin/nologin ダウンロード ※http //dev.mysql.com/downloads/→MySQL Community Server→Source Code→TAR Archive→No thanks, just take me to the downloads! icc Intel純正のC/C++コンパイラで、Intel CPUで最適化が可能。コンパイラが別にいるので今回は使わない。 参考http //blog.miraclelinux.com/thethird/2006/12/mysqlintel_c_co_4007.html [root@localhost ~]# cd /usr/local/setup/archive [root@water0 archive]# wget http //dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.46.tar.gz/from/http //ftp.jaist.ac.jp/pub/mysql/ [root@localhost archive]# cd ../make/ [root@water0 make]# tar -zxvf ../archive/mysql-5.1.46.tar.gz [root@water0 make]# cd mysql-5.1.46 ./configure \ --prefix=/usr/local/mysql \ --with-charset=utf8 \ --with-collation=utf8_general_ci \ --with-mysqld-user=mysql \ --with-extra-charsets=all \ --with-client-ldflags=-all-static \ --with-mysqld-ldflags=-all-static \ --enable-assembler \ --enable-local-infile 2 1 |tee configure_100503.log エラー checking for termcap functions library... configure error No curses/termcap library found yum install ncurses-devel -y で解決 参考 http //ja.wikipedia.org/wiki/Ncurses [root@water0 mysql-5.1.46]# make 2 1 |tee make_100503.log [root@water0 mysql-5.1.46]# make install 2 1 |tee make_install_100503.log 設定ファイル [root@water0 mysql-5.1.46]# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf my.cnfのひな形 my-small.cnf 64Mバイト以下のメモリの小規模サーバー向け my-medium.cnf 32M064Mバイトのメモリを持つMySQL専用サーバーか,128Mバイトのメモリを持つサーバー向け my-large.cnf 512Mバイト程度のメモリを持ち,MySQL専用となる機械向け my-huge.cnf 1Gから2Gバイトのメモリを持つMySQL専用サーバー向け my-innodb-heavy-4G.cnf 4Gバイトのメモリ、InnoDBのみ、ACID、少ない接続、大量のクエリ 起動までの設定 [root@water0 mysql-5.1.46]# cd /usr/local/mysql [root@water0 mysql]# chown -R mysql mysql /usr/local/mysql/ [root@water0 mysql]# ./bin/mysql_install_db --user=mysql [root@water0 mysql]# chown -R mysql mysql /usr/local/mysql 起動 [root@water0 mysql]# /usr/local/mysql/bin/mysqld_safe --user=mysql [1] 17072 [root@water0 mysql]# 100503 16 40 24 mysqld_safe Logging to /usr/local/mysql/var/water0.dip.jp.err . 100503 16 40 24 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var 停止 [root@water0 mysql]# /usr/local/mysql/bin/mysqladmin shutdown 100503 16 41 56 mysqld_safe mysqld from pid file /usr/local/mysql/var/water0.dip.jp.pid ended [1]+ Done /usr/local/mysql/bin/mysqld_safe --user=mysql 自動起動 [root@water0 mysql]# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld [root@water0 mysql]# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld [root@water0 mysql]# chkconfig --add mysqld [root@water0 mysql]# chkconfig mysqld on [root@water0 mysql]# /etc/init.d/mysqld start 初期パスワード設定(シェルスクリプト) [root@water0 mysql]# /usr/local/mysql/bin/mysql_secure_installation Enter current password for root (enter for none) Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y エラー /usr/local/mysql/bin/mysql_secure_installation line 43 mysql command not found ※PATHが通ってないので/etc/profileに追加(次回起動時に読み込む export PATH=$PATH /usr/local/mysql/bin ← 一時的な設定 エラー ERROR 2002 (HY000) Can t connect to local MySQL server through socket /tmp/mysql.sock (2) ※MYSQLが起動していない。 RCS [root@water0 ~]# cd /etc/ [root@water0 etc]# mkdir RCS [root@water0 etc]# ci my.cnf [root@water0 etc]# co -u -l my.cnf make installしたファイルを削除したい。 make uninstall find / -name mysql rm -rf /usr/local/lib/mysql /usr/local/include/mysql もし、uninstallがなかった場合.. cat Makefile |less prefix,exec_prefix,bindir,sbindir,mandirなどを見る。 makeに付加させるパラメータ「install 」 「mkdir -f -p -m 755 $(bindir) $(mandir)/man1 $(nmapdatadir) $(deskdir)」でディレクトリ作成 「$(INSTALL)」が行頭に書かれている行が,コピーされるファイルすべての指定
https://w.atwiki.jp/carlton/pages/13.html
MySQL MySQL 5.1 リファレンスマニュアル インストール パス設定 「システム詳細設定」≫「環境変数」で以下を追記 変数名 Path 変数値 C \Program Files\MySQL\MySQL Server 5.1\bin ユーザとデータベース作成 ユーザ名 username パスワード password データベース名 databasename mysql grant all privileges on *.* to username@localhost identified by password with grant option; mysql create database databasename Connector/J MySQL Connector/J インストール CLASSPATHにmysql-connector-java-[version]-bin.jarを配置 Connector/ODBC MySQL Connector/ODBC インストール MySQL AB ウェブサイトからmysql-connector-odbc-[version]-win32.msiをダウンロードし、インストール DSN構築 「管理ツール」≫「データソース(ODBC)」のユーザDSNで「追加」 ドライバ:MySQL ODBC 5.1 Driverを選択し「完了」 Data Source Name 設定したDSNの名前 Description Server localhost(デフォルト) Port 3306(デフォルト User 接続に使用するユーザ名 Password 接続に使用するパスワード Database アクセスを許可されたデータベースから選択 「Test」で接続が成功することを確認後、「OK」
https://w.atwiki.jp/sevenlives/pages/209.html
MySQL 読み:まいえすきゅーえる 英語:MySQL 別名: 意味: MySQLとはMySQL AB?によって開発されている、オープン・ソース?のRDBMSのこと。 もっとも普及しているオープン・ソース・データベースである。 開発方針は機能よりも高速性を追求しており、他のフリーのRDBMSより高速なことに定評がある。 しかし、新機能も続々と追加されており、MySQL5ではストアド・プロシージャやトリガーなど実装された。 特徴をまとめると オープンソースである。 デュアル・ライセンス?である。 高速な動作を追求。 リソースの少ない環境でも使用できる。 構造がシンプルでデータをファイルで保存するため移植性が高い。 様々なプラットフォームに対応してきている。 C,Java,PHP,Python,Rubyなど多くの開発言語と対応している。 などがある。 MySQL6ではFalconストレージ・エンジンを搭載する。 日本語の文字コードに関してバージョン4.1から大幅な変更があったので運営に関して気をつけなければならない。 日本での普及はMySQL日本ユーザ会【MyNA】により行われています。 2015年07月20日 シェルプロンプト MyNA MySQLサーバ クライアント・プログラムMySQLクライアント phpMyAdmin? MySQLi MySQL Cluste MySQL Sandbox? インタラクティブ・モード? データ・ディレクトリ(MySQL)? トランザクションAUTO COMMIT ソケット・ファイル? ホスト(MySQL)? ユーザ(MySQL)rootユーザ(MySQL)? 一般ユーザ(MySQL)? 匿名ユーザ(MySQL)? グローバル権限(MySQL)? my.cnf(my.ini) 拡張INSERT構文? sql_mode? グローバル・バッファ? スレッド・バッファ? Sakila ■ MySQLコマンド? mysql mysqld? mysqladmin --user=ユーザ名【-u ユーザ名】? --password=パスワード【-p (パスワード)】? --host=ホスト名【-h ホスト名】? ■ SQL(MySQL) CREATE? ALTER? UPDATE? DROP? DELETE? TRUNCATE? COLLATE(MySQL) SHOW(MySQL)? SELECT? ○ 結合 クロス結合? 内部結合? 外部結合? LIMIT(オリジナル)? ■ MySQL5.0追加機能 情報スキーマ【information_schema】 ストアドプロシージャ? ストアドファンクション? ■ ストレージ・エンジン MEMORY? ISAM? MyISAM MERGE? InnoDB FEDERATED? NDB? ■ 関数(MySQL) PASSWORD?
https://w.atwiki.jp/ce00582/pages/5788.html
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http //www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http //www.w3.org/1999/xhtml" xml lang="ja" lang="ja" head meta http-equiv="Content-Type" content="text/html;charset=UTF-8" / title abc /title /head body ?php $link = mysql_connect( mysql7.000webhost.com , a5494794_music , amachan2013 ); if (!$link) {print(mysql_error());} $db_selected = mysql_select_db( a5494794_music , $link); if (!$db_selected){ die(mysql_error()); } $result = mysql_query( SELECT a,b,c FROM ren ); if (!$result) {die(mysql_error());} while ($row = mysql_fetch_assoc($result)) { print($row[ a ]); print($row[ c ]); } mysql_close($link); ? /body /html
https://w.atwiki.jp/ca07/pages/22.html
名前空間の合成 namespace 名前空間名A { using namespace 名前空間1; using namespace 名前空間2; } namespace name1 { extern int a; } namespace name2 { extren int b; } namespace nameA { using namespace name1; using namespace name2; } int main() { return nameA a; // nameA name1 a } ※名前空間利用指令を使って、複数の名前空間を名前空間名Aに統合できる。
https://w.atwiki.jp/takedaz/pages/16.html
ダウンロード インストール パスを通す サービスに登録 d \mysql\bin\mysqld --install MySQL --defaults-file="d \mysql\my.ini" 設定 my-medium.iniをmy.iniにリネームしてコピー インストールパス 文字コード windows拡張shift-jis ver4.1以降で対応 [mysqld] # set basedir to your installation path basedir= c /program files/program/mysql-5.0.45-win32 # set datadir to the location of your data directory datadir= c /program files/program/mysql-5.0.45-win32/data default-character-set=cp932 [mysqldump] default-character-set=cp932 [mysql] default-character-set=cp932
https://w.atwiki.jp/fattencho/pages/24.html
Mysql MyISAMとinnodb違い http //tsuttayo.jpn.org/mysql/innodb/ http //linux.mini13i.com/?MySQL%2F%BA%C7%C5%AC%B2%BD%2F%A5%B5%A1%BC%A5%D0%A5%D1%A5%E9%A5%E1%A5%BF MyISAM inodb
https://w.atwiki.jp/myoss/pages/12.html
MySQL関連のページ WebLogic+MySQLのXAテスト環境構築手順 INSERTにてAUTO_INCREMENT カラムに設定された最新値の確認方法 Windows環境で複数バージョンを共存させる方法 MySQL AdministratorでInnoDB Buffer Poolのヒット率をグラフ化する方法 mysqlクライアントにシステムのreadlineライブラリを使用させる方法 MERGEテーブルについて
https://w.atwiki.jp/ca07/pages/18.html
名前なし名前空間 namespace { 宣言や定義の並び } namespace { double a _= 0.0; } int main() { return a; } ※名前なし名前空間で宣言・定義された識別子は、 この名前なし空間定義の翻訳単位内から参照できる。 ※名前なし名前空間は翻訳単位ごとに別のものが存在し、 翻訳単位の外部からこの名前なし名前空間内の識別子を参照することはできない。
https://w.atwiki.jp/dellkeitai/pages/32.html
チューニング http //dsas.blog.klab.org/archives/50860867.html http //open-groove.net/mysql/seek-mysql-memory/ キャッシュを使わない SELECT SQL_NO_CACHE ~ インデックス情報の確認 show index from テーブル名 統計情報の再取得 analyze table テーブル名 スキーマ情報 select column_name from INFORMATION_SCHEMA.COLUMNS ストアドサンプル create table t (a int auto_increment primary key, b int,c int, unique index u_in (b)); insert into t(b,c) values (2,20); insert into t(b,c) values (3,40); DROP PROCEDURE IF EXISTS p; DELIMITER // CREATE PROCEDURE p (IN inb INT, IN inc INT) BEGIN UPDATE t SET C = inc WHERE B = inb and c = 20; IF ROW_COUNT() = 0 THEN INSERT INTO t(b,c) values (inb, inc); END IF ; END; DELIMITER ; call p(2,30); call p(3,30); call p(4,30); CSVファイル取り込み 例 mysql load data infile e /test.csv into table t1 fields terminated by , enclosed by " lines terminated by \r\n (@var1,@var2) set b = cast(@var1 as signed), a = cast(@var2 as signed); 注意点 CSVファイルのデータに「"", ""」のようにカンマの後にスペースがあるとうまく動かない」 ダンプ出力 mysqldumpだとストアドが標準では出力されない。-Rオプションを付与する必要がある。 mysqldump /*!50001 DROP TABLE `v_company_info_list`*/; これはMySQL5.0.00.1以上のバージョンでのみ対応していること mysqldumpの読み込みでエラー ERROR 1227 (42000) at line 行数 Access denied; you need the SUPER privilege for this operation /*!50013 DEFINER=`ユーザー名`@`%` SQL SECURITY DEFINER */ SECURITY DEFINERは作成したユーザの権限で実行するらしい MySQLのマニュアルに以下のようにかいてあった http //dev.mysql.com/doc/refman/5.1/ja/create-view.html DEFINER節を規定する場合、SUPER権限を持っていない限り、ユーザの値を除くいかなるアカウントにも値を設定することはできません。 要はSUPER権限を付与する必要があるということか? update user set super_priv= Y where user= ; 上記コマンド実施後、MySQLを再起動したら動いた。 参考URL http //nippondanji.blogspot.com/2010/04/mysqlmysql-554.html 文字コードの確認 show variables like character_set% ; show create database ***; 文字コードの変更 alter database *** character set cp932 新規データ登録 package sijo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Random; import java.util.logging.Logger; public class DataInsert { private static final Logger LOGGER = Logger.getLogger("DataImport"); /** * @param args * @throws Exception */ public static void main(final String[] args) { final long start = System.currentTimeMillis(); new DataInsert().execute(); final long end = System.currentTimeMillis(); LOGGER.info("処理時間(秒) " + (end - start) / 1000); } /** * データ登録実行処理 */ public void execute() { try { connectionManager(connection()); } catch(SQLException e){ LOGGER.severe("異常発生"); } } /** * DBとのコネクション作成処理 * MySQL専用。バッチ処理対応 * @return * @throws SQLException */ private Connection connection() throws SQLException { final String JDBC_URL = "jdbc mysql //localhost/db"; final String JDBC_USER = "user"; final String JDBC_PASS = "password"; try { return DriverManager.getConnection(JDBC_URL + "?rewriteBatchedStatements=true", JDBC_USER, JDBC_PASS); } catch (SQLException e) { LOGGER.severe("DBとのコネクションに失敗 " + e); throw new SQLException(); } } /** * コネクション管理処理。 * 作成済みのコネクションを使用して、ステートメントの作成、コネクションの解放を行う。 * @param conn * @throws SQLException */ private void connectionManager(final Connection conn) throws SQLException { try{ conn.setAutoCommit(false); final PreparedStatement pstmt = conn.prepareStatement(getSql()); executeSql(conn, pstmt); }catch(SQLException e){ LOGGER.severe("SQL文の実行でエラー " + e); throw new SQLException(); }finally{ conn.close(); } } /** * データ登録管理処理 * 作成済みのステートメントに値をセットし、データ登録する。 * 登録する件数や、コミットするタイミングを設定する。 * @param conn * @param pstmt * @throws SQLException */ private void executeSql(final Connection conn, final PreparedStatement pstmt)throws SQLException{ // 登録するデータ件数 final int COUNT = 100000; //コミットするタイミング。COMMIT_SIZE件数毎にコミットする final int COMMIT_SIZE = 10000; //一度に登録する件数。バッチ処理 final int BATCH_SIZE = 500; System.out.println(COUNT / COMMIT_SIZE + "回登録します"); for (int i = 1; i = COUNT; i += BATCH_SIZE) { executeBatch(pstmt, i, BATCH_SIZE); if ((i + BATCH_SIZE - 1) % COMMIT_SIZE == 0) { conn.commit(); System.out.print("*"); } } conn.commit(); } /** * INSERT文を設定。 * オーバーライドして使用する。 * @return */ String getSql(){ return "insert into table (a) values (?)"; } /** * バッチ実行処理。 * 登録する値をセットする。 * オーバーライドして使用する。 * @param pstmt * @param i ユニークNoのセットのためのループカウント * @param BATCH_SIZE * @throws SQLException */ void executeBatch(final PreparedStatement pstmt,final int i,final int BATCH_SIZE) throws SQLException{ pstmt.clearBatch(); Random rand = new Random(); for (int j = 0; j BATCH_SIZE; j++) { pstmt.setObject(1, i + j);//発注番号 pstmt.addBatch(); } pstmt.executeBatch(); } } データ移行 サービスの登録 C \usr\mysql\bin mysqld-nt.exe --install